The present invention relates to the field of computer graphics. In particular, this invention relates to the field of bit mapped computer graphics in which the computer memory stores data for each individual picture element or pixel of the display at memory locations that correspond to the location of that pixel on the display. The field of bit mapped computer graphics has benefitted greatly from the lowered cost per bit of dynamic random access memory (DRAM). The lowered cost per bit of memory enables larger and more complex displays to be formed in the bit mapped mode.
The reduction in the cost per bit of memory and the consequent increase in the capacity of bit mapped computer graphics has led to the need for processing devices which can advantageously use the bit mapped memory in computer graphics applications. In particular, a type of device has arisen which includes the capacity to draw simple figures, such as lines and circles, under the control of the main processor of the computer. In addition, some devices of this type include a limited capacity for bit block transfer (known as BIT-BLT or raster operation) which involves the transfer of image data from one portion of memory to another, together with logical or arithmetic combinations of that data with the data at the destination location within the memory.
These bit-map controllers with hard wired functions for drawings lines and performing other basic graphics operations represent one approach to meeting the demanding performance requirements of bit maps displays. The built-in algorithms for performing some of the most frequently used graphics operations provides a way of improving overall system performance. However, a useful graphics system often requires many functions in addition to those few which are implemented in such a hard wired controller. These additional required functions must be implemented in software by the primary processor of the computer. Typically these hard wired bit-map controllers permit the processor only limited access to the bit-map memory, thereby limiting the degree to which software can augment the fixed set of functional capacities of the hard wired controller. Accordingly, it would be highly useful to be able to provide a more flexible solution to the problem of controlling the contents of the bit mapped memory, either by providing a more powerful graphics controller or by providing better access to this memory by the system processor, or both.
Such a controller would preferably have a wide internal and external data bus, so that the size of the data word upon which the desired data operations are performed may accordingly be large, resulting in increased speed of operation. However, the number of bits in such a data word which are directed to an individual screen element, or pixel, may be significantly fewer than the number of bits in the data word. Similarly, it is desirable for graphics applications to be able to modify individual stored bits in memory for a number of pixels without modifying the other bits in said pixels. It is also desirable to address a field of bits which may not coincide with the boundaries of the data word, and to modify the values stored in memory within said field without disturbing the stored contents of bits outside of the field boundary, but within the data word which is addressed to modify the desired field. Accordingly, a number of masks are useful in masking the bits within an addressed data word so that the bits which are not desired to be modified according to the operation executed by the controller are indeed not modified.
Prior controllers required a number of machine cycles to accomplish the masking and modifying steps necessary to modify certain bits within the data word while not modifying others. Such prior controllers had to temporarily store the original contents of the memory location in a register, and use the central processing unit to logically combine the new data word with, a mask register identifying the bits to be overwritten and the bits, not to be overwritten, and the original contents of the memory location were logically combined with the mask, in order to create a new data word that contained the new data in the desired bit positions and the original data in the desired bit positions. A number of instruction cycles were required for logical operations upon the three data words (original data, mask data, and new data), and the the loading and reading of temporary registers with the contents of the three data words and necessary intermediate results in the logical operation sequence. Accordingly, while prior controllers indeed could perform the bit-addressable functions, if such operations were to be performed on a large amount of data, for example on each pixel to be displayed on a video display, the performance of such prior controllers was unacceptable.
It is therefore an object of this invention to provide a data processing apparatus which can perform bit-addressable operations on a wide data word.
It is another object of this invention to provide such bit-addressable capability for a graphics controller.
It is another object of this invention to provide such a graphics controller which can modify individual bits within a display memory within a single read-modify-write memory access cycle.
It is another object of this invention to provide an input/output buffer circuit which can effect the masking operation, so that logical operations need not be performed by the central processing unit to effect such bit-addressable logical operations.
Other objects and advantages of the invention will be apparent to those of skill in the art, with reference to the following description and drawings.